package com.lqzs.businessmanager.utils

import android.content.Context
import android.content.SharedPreferences

object PreferencesUtil {
    private const val PREF_NAME = "BusinessManager" // SharedPreferences 文件名

    // 获取 SharedPreferences 实例
    private fun getSharedPreferences(context: Context): SharedPreferences {
        return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
    }

    // 保存 String 数据
    fun putString(context: Context, key: String, value: String) {
        getSharedPreferences(context).edit().putString(key, value).apply()
    }

    // 获取 String 数据
    fun getString(context: Context, key: String, defaultValue: String = ""): String {
        return getSharedPreferences(context).getString(key, defaultValue) ?: defaultValue
    }

    // 保存 Int 数据
    fun putInt(context: Context, key: String, value: Int) {
        getSharedPreferences(context).edit().putInt(key, value).apply()
    }

    // 获取 Int 数据
    fun getInt(context: Context, key: String, defaultValue: Int = 0): Int {
        return getSharedPreferences(context).getInt(key, defaultValue)
    }

    // 保存 Boolean 数据
    fun putBoolean(context: Context, key: String, value: Boolean) {
        getSharedPreferences(context).edit().putBoolean(key, value).apply()
    }

    // 获取 Boolean 数据
    fun getBoolean(context: Context, key: String, defaultValue: Boolean = false): Boolean {
        return getSharedPreferences(context).getBoolean(key, defaultValue)
    }

    // 保存 Float 数据
    fun putFloat(context: Context, key: String, value: Float) {
        getSharedPreferences(context).edit().putFloat(key, value).apply()
    }

    // 获取 Float 数据
    fun getFloat(context: Context, key: String, defaultValue: Float = 0f): Float {
        return getSharedPreferences(context).getFloat(key, defaultValue)
    }

    // 保存 Long 数据
    fun putLong(context: Context, key: String, value: Long) {
        getSharedPreferences(context).edit().putLong(key, value).apply()
    }

    // 获取 Long 数据
    fun getLong(context: Context, key: String, defaultValue: Long = 0L): Long {
        return getSharedPreferences(context).getLong(key, defaultValue)
    }

    // 删除某个 key 值
    fun remove(context: Context, key: String) {
        getSharedPreferences(context).edit().remove(key).apply()
    }

    // 清除所有数据
    fun clear(context: Context) {
        getSharedPreferences(context).edit().clear().apply()
    }
}